View Javadoc

1   /*
2    * PluginServlet.java
3    *
4    * Created on 15 de Junho de 2005, 06:18
5    */
6   
7   package org.thema.scriptware.controller;
8   
9   import java.io.*;
10  import java.util.HashMap;
11  
12  import javax.servlet.*;
13  import javax.servlet.http.*;
14  import org.thema.scriptware.digester.DigesterPlugin;
15  
16  /***
17   *
18   * @author Eduardo M . Sasso
19   * @version
20   */
21  public class PluginServlet extends HttpServlet {
22      
23      /*** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
24       * @param request servlet request
25       * @param response servlet response
26       */
27      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
28      throws ServletException, IOException {
29          HttpSession session = request.getSession();
30          
31          ServletContext servletContext = this.getServletContext();
32          InputStream inputStream = servletContext.getResourceAsStream("META-INF/plugins.xml");
33          if (inputStream == null) {
34              throw new IOException("arquivo META-INF/plugins.xml não foi encontrado!");
35          }
36          DigesterPlugin digesterPlugin = new DigesterPlugin(inputStream);
37          
38          try {
39              digesterPlugin.digest();
40          } catch (IOException e) {
41              throw new IOException(e.getMessage());
42          } catch (org.xml.sax.SAXException ex) {
43              throw new ServletException(ex.getMessage());            
44          }
45          HashMap hashMap = (HashMap)digesterPlugin.getPlugins();
46          
47          session.setAttribute("plugins", hashMap);
48          request.setAttribute("plugins", hashMap.values());
49          
50          RequestDispatcher dispatcher = request.getRequestDispatcher("plugins.jsp");
51          dispatcher.forward(request,response);
52      }
53      
54      // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
55      /*** Handles the HTTP <code>GET</code> method.
56       * @param request servlet request
57       * @param response servlet response
58       */
59      protected void doGet(HttpServletRequest request, HttpServletResponse response)
60      throws ServletException, IOException {
61          processRequest(request, response);
62      }
63      
64      /*** Handles the HTTP <code>POST</code> method.
65       * @param request servlet request
66       * @param response servlet response
67       */
68      protected void doPost(HttpServletRequest request, HttpServletResponse response)
69      throws ServletException, IOException {
70          processRequest(request, response);
71      }
72      
73      /*** Returns a short description of the servlet.
74       */
75      public String getServletInfo() {
76          return "Short description";
77      }
78      // </editor-fold>
79  }